#ifndef CORECONTROLLER_H
#define CORECONTROLLER_H

#include <vector>
#include <map>
#include <cassert>
#include <iostream>
#include <string>
#include "framework.h"
#include "includes.h"
#include "utils.h"


class Ship;
class CoreController
{
public:
	int owner;
	int targeId;
	int targetLayer;
	float distAnt;
	CoreController();
	virtual void recalc(Ship * _ship, double _seconds_elapsed){}

};

class controllerPerseguirEquipo : virtual public CoreController
{
protected:
	int targetId;
	int targetLayer;
	Vector3 targetPos;
	Vector3 targetOldPos;
	Vector3 targetSpeed;
public:
	controllerPerseguirEquipo();
	void setTarget(int _targetID, int _targetLayer);
	void recalc(Ship * _ship, double _seconds_elapsed);
	void ObtenerObjetivo(Ship * _ship);
};

class controllerPerseguirEquipoPred : virtual public CoreController
{
protected:
	int targetId;
	int targetLayer;
	Vector3 targetPos;
	Vector3 targetOldPos;
	Vector3 targetSpeed;
public:
	controllerPerseguirEquipoPred();
	void setTarget(int _targetID, int _targetLayer);
	void recalc(Ship * _ship, double _seconds_elapsed);
	void ObtenerObjetivo(Ship * _ship);
};

#endif